home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics Plus
/
Graphics Plus.iso
/
general
/
viewers
/
polyview
/
plyvw102.lha
/
PolyView1.02
/
pvdraw.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-11-13
|
53KB
|
1,042 lines
/* INCLUDE FILES */
#include "pv.h"
int
title_draw(window)
windat_t * window;
/* DESCRIPTION: Redraws the window using the NCSA logo.
Returns FALSE if successful, TRUE if an error occurs.
*/
{
long xwdim, ywdim;
long xbdim, ybdim;
long height;
int i;
static unsigned char palette[256*3] = {
255, 255, 255, 252, 252, 252, 248, 248, 248, 244, 244, 244,
240, 240, 240, 236, 236, 236, 232, 232, 232, 228, 228, 228,
224, 224, 224, 220, 220, 220, 216, 216, 216, 212, 212, 212,
208, 208, 208, 204, 204, 204, 200, 200, 200, 196, 196, 196,
192, 192, 192, 188, 188, 188, 184, 184, 184, 180, 180, 180,
176, 176, 176, 172, 172, 172, 168, 168, 168, 164, 164, 164,
160, 160, 160, 156, 156, 156, 152, 152, 152, 148, 148, 148,
144, 144, 144, 140, 140, 140, 136, 136, 136, 132, 132, 132,
128, 128, 128, 124, 124, 124, 120, 120, 120, 116, 116, 116,
112, 112, 112, 108, 108, 108, 104, 104, 104, 100, 100, 100,
96, 96, 96, 92, 92, 92, 88, 88, 88, 84, 84, 84,
80, 80, 80, 76, 76, 76, 72, 72, 72, 68, 68, 68,
64, 64, 64, 60, 60, 60, 56, 56, 56, 52, 52, 52,
48, 48, 48, 44, 44, 44, 40, 40, 40, 36, 36, 36,
32, 32, 32, 28, 28, 28, 24, 24, 24, 20, 20, 20,
16, 16, 16, 12, 12, 12, 8, 8, 8, 4, 4, 4,
0, 0, 0, 23, 202, 201, 199, 197, 198, 4, 201, 202,
24, 202, 203, 211, 208, 204, 198, 195, 194, 197, 254, 13,
195, 197, 190, 167, 183, 185, 191, 199, 194
};
static unsigned short ncsa_logo[] = {
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 769, 770, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 770, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 769, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 769, 769, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 771, 771, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 774, 772, 774, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 771, 772, 770, 772, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 770, 770,
776, 783, 784, 784, 780, 773, 769, 770, 7, 7, 7, 7, 7, 7,
7, 7, 7, 798, 824, 825, 802, 776, 770, 770, 769, 769, 770, 770,
770, 770, 770, 770, 770, 770, 770, 769, 769, 769, 769, 770, 769, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 771, 772, 773, 772, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
774, 772, 771, 771, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 824, 831, 823, 775, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 790, 815, 822, 824, 823, 786, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 772, 780, 804, 825, 827,
826, 829, 829, 830, 829, 827, 826, 825, 807, 784, 772, 7, 7, 769,
7, 7, 778, 824, 832, 832, 831, 826, 827, 828, 829, 829, 829, 829,
829, 828, 829, 829, 829, 829, 829, 829, 829, 828, 828, 826, 814, 792,
775, 774, 7, 7, 7, 7, 7, 7, 772, 816, 828, 827, 816, 774,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 778,
820, 829, 826, 804, 774, 7, 769, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 782, 830, 832, 829, 771, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 774, 818, 832, 829, 832, 830, 786, 7, 7,
7, 7, 7, 7, 7, 7, 7, 770, 790, 819, 828, 829, 832, 832,
832, 832, 832, 832, 832, 832, 832, 832, 829, 827, 816, 785, 7, 7,
7, 7, 786, 832, 831, 828, 832, 832, 832, 832, 832, 832, 832, 832,
832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 831,
828, 822, 797, 777, 7, 7, 769, 7, 7, 806, 831, 832, 828, 778,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 795,
831, 832, 827, 784, 7, 769, 769, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 781, 828, 832, 827, 771, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 796, 829, 830, 829, 832, 827, 782, 7, 7,
7, 7, 7, 7, 7, 7, 775, 807, 827, 832, 831, 831, 832, 829,
828, 829, 829, 829, 829, 829, 827, 829, 832, 831, 832, 824, 799, 775,
7, 7, 776, 819, 832, 832, 832, 825, 821, 819, 815, 815, 819, 818,
820, 820, 817, 817, 817, 817, 817, 817, 817, 820, 825, 828, 829, 829,
832, 832, 830, 819, 792, 773, 7, 770, 7, 778, 823, 832, 829, 797,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 772, 817,
831, 831, 824, 771, 7, 770, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 781, 829, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 769, 7, 776, 822, 832, 827, 831, 832, 829, 782, 7, 7,
7, 7, 7, 7, 7, 775, 808, 832, 831, 828, 832, 829, 817, 793,
774, 772, 772, 772, 772, 772, 775, 796, 820, 829, 829, 832, 831, 813,
778, 7, 7, 792, 822, 825, 798, 776, 7, 7, 769, 7, 7, 7,
7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 770, 772, 773, 780,
800, 817, 827, 832, 824, 803, 776, 769, 7, 7, 811, 830, 832, 821,
773, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 784, 828,
832, 829, 807, 770, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 782, 829, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 800, 829, 828, 830, 832, 832, 831, 785, 7, 7,
7, 7, 7, 7, 770, 804, 832, 829, 828, 832, 823, 792, 774, 7,
7, 7, 7, 7, 7, 7, 7, 7, 777, 806, 827, 829, 830, 832,
801, 770, 7, 7, 769, 771, 779, 790, 784, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
770, 775, 788, 816, 832, 828, 800, 772, 7, 7, 790, 827, 832, 829,
779, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 809, 831,
832, 827, 780, 7, 769, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 784, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 769, 7, 778, 823, 831, 829, 825, 832, 832, 830, 785, 7, 7,
7, 7, 7, 7, 792, 828, 831, 828, 832, 811, 781, 7, 7, 7,
769, 7, 7, 7, 7, 7, 769, 7, 7, 773, 798, 828, 829, 831,
827, 790, 7, 7, 7, 789, 821, 832, 824, 796, 778, 774, 774, 774,
774, 774, 774, 774, 773, 772, 773, 771, 770, 770, 769, 769, 771, 769,
7, 7, 7, 780, 806, 828, 823, 790, 770, 7, 772, 824, 832, 828,
793, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 774, 826, 832,
832, 825, 772, 7, 769, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 782, 829, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 770, 802, 830, 831, 820, 795, 826, 832, 828, 782, 7, 7,
7, 769, 7, 779, 823, 832, 828, 832, 808, 775, 7, 769, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 771, 7, 771, 806, 831, 829,
832, 817, 773, 7, 772, 819, 832, 832, 832, 830, 828, 829, 830, 830,
829, 830, 830, 830, 830, 829, 830, 829, 829, 829, 829, 828, 824, 805,
782, 776, 772, 7, 776, 805, 831, 819, 779, 7, 771, 815, 831, 832,
816, 771, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 797, 831, 832,
829, 804, 770, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 781, 829, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
769, 7, 785, 824, 831, 827, 793, 775, 828, 832, 829, 784, 7, 7,
7, 7, 771, 809, 832, 828, 832, 814, 776, 7, 771, 769, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 770, 7, 776, 813, 832,
831, 829, 790, 7, 774, 827, 832, 827, 832, 832, 832, 832, 830, 831,
832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832,
828, 821, 804, 781, 7, 775, 809, 829, 796, 769, 769, 792, 826, 832,
827, 777, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 772, 822, 832, 831,
829, 779, 7, 769, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 775, 813, 831, 832, 820, 774, 778, 831, 832, 829, 781, 7, 7,
7, 7, 794, 829, 830, 831, 824, 780, 7, 771, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 770, 7, 784, 828,
832, 830, 812, 772, 772, 812, 827, 832, 832, 819, 804, 800, 797, 795,
798, 797, 796, 796, 796, 796, 796, 796, 798, 802, 809, 820, 826, 828,
831, 832, 829, 821, 795, 7, 779, 824, 823, 781, 7, 774, 823, 832,
828, 792, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 779, 829, 832, 832,
823, 773, 7, 769, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
769, 799, 829, 831, 826, 792, 7, 783, 828, 832, 829, 778, 7, 7,
7, 775, 823, 832, 829, 831, 796, 7, 7, 769, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 772, 816,
831, 831, 826, 776, 7, 774, 795, 814, 802, 779, 772, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 771, 773, 777,
796, 816, 826, 832, 823, 793, 769, 795, 827, 796, 7, 769, 810, 830,
831, 814, 771, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 801, 829, 832, 829,
794, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
791, 826, 831, 831, 813, 771, 7, 786, 828, 832, 829, 778, 7, 7,
7, 793, 831, 831, 832, 824, 774, 7, 770, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 788,
800, 805, 806, 771, 7, 7, 7, 770, 787, 810, 817, 787, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
769, 775, 786, 812, 832, 823, 777, 774, 826, 818, 771, 7, 789, 827,
832, 826, 780, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 823, 832, 832, 826,
773, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 772,
818, 832, 830, 827, 786, 7, 7, 781, 829, 832, 829, 780, 7, 7,
771, 815, 832, 830, 831, 808, 769, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769,
771, 770, 772, 7, 7, 7, 7, 770, 817, 832, 832, 824, 809, 804,
804, 805, 804, 801, 798, 800, 797, 797, 800, 795, 784, 774, 771, 771,
7, 7, 7, 783, 817, 830, 796, 772, 815, 826, 774, 7, 773, 825,
832, 828, 797, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 778, 827, 831, 831, 818,
771, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 788,
828, 830, 832, 815, 772, 7, 7, 780, 829, 832, 829, 779, 7, 7,
772, 827, 832, 832, 828, 786, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
769, 7, 7, 7, 7, 7, 7, 781, 830, 832, 830, 832, 832, 832,
832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 831, 829, 826, 808,
785, 777, 770, 7, 789, 824, 821, 773, 789, 826, 778, 7, 769, 815,
831, 832, 827, 809, 803, 803, 800, 800, 800, 800, 801, 802, 801, 803,
801, 803, 801, 800, 801, 802, 801, 798, 800, 819, 832, 831, 830, 793,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 776, 819,
832, 830, 825, 784, 7, 7, 7, 785, 830, 832, 829, 776, 7, 7,
782, 830, 832, 832, 825, 773, 7, 769, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 769, 769, 7, 7, 769, 769, 784, 831, 832, 832, 832, 830, 829,
830, 830, 829, 830, 829, 828, 830, 830, 832, 831, 830, 831, 832, 832,
830, 821, 797, 775, 769, 798, 826, 785, 774, 826, 782, 7, 7, 793,
830, 832, 832, 832, 830, 830, 830, 831, 832, 832, 832, 832, 831, 832,
832, 832, 832, 832, 832, 831, 830, 829, 829, 832, 831, 832, 824, 777,
7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 800, 830,
829, 831, 807, 770, 7, 7, 7, 786, 830, 832, 829, 776, 7, 7,
800, 831, 832, 831, 808, 769, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 769, 7, 775, 818, 832, 832, 823, 797, 783,
783, 782, 779, 779, 779, 779, 781, 778, 779, 781, 787, 797, 808, 823,
826, 832, 827, 805, 771, 777, 824, 816, 775, 825, 786, 769, 7, 774,
826, 832, 831, 832, 832, 831, 830, 831, 832, 832, 832, 832, 832, 832,
832, 832, 832, 832, 832, 830, 831, 832, 832, 832, 832, 831, 797, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 782, 824, 831,
832, 817, 777, 7, 769, 7, 7, 785, 830, 832, 828, 774, 7, 769,
818, 832, 832, 829, 787, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 776, 795, 798, 776, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 771, 772,
772, 796, 824, 830, 797, 769, 799, 824, 776, 824, 782, 7, 7, 770,
810, 831, 832, 832, 820, 811, 808, 807, 810, 811, 806, 806, 809, 809,
809, 809, 809, 809, 807, 808, 810, 811, 832, 831, 832, 823, 774, 7,
770, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 771, 808, 831, 831,
823, 785, 7, 770, 7, 7, 7, 785, 830, 832, 829, 776, 7, 769,
826, 832, 832, 828, 775, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 770, 771, 7, 7, 769,
7, 7, 7, 7, 7, 772, 787, 804, 812, 807, 789, 773, 7, 7,
7, 7, 777, 813, 829, 783, 775, 823, 777, 821, 778, 7, 769, 7,
786, 827, 832, 828, 800, 769, 769, 7, 769, 770, 769, 769, 770, 770,
770, 770, 770, 770, 7, 770, 7, 780, 827, 832, 828, 804, 769, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 788, 825, 832, 829,
797, 7, 769, 769, 7, 7, 7, 785, 830, 832, 829, 777, 7, 769,
827, 832, 832, 828, 771, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 7, 769, 7, 7,
7, 7, 7, 7, 781, 811, 827, 829, 830, 829, 828, 814, 780, 7,
769, 7, 7, 779, 820, 811, 776, 821, 779, 809, 773, 7, 770, 7,
773, 824, 832, 832, 818, 770, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 797, 829, 832, 826, 780, 7, 769,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 788, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 774, 817, 832, 832, 821,
776, 7, 770, 7, 7, 7, 7, 785, 830, 832, 828, 776, 7, 772,
828, 832, 832, 826, 771, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 769, 7, 7, 7,
7, 7, 7, 773, 814, 832, 830, 830, 830, 829, 830, 832, 812, 775,
7, 7, 770, 7, 787, 822, 777, 808, 788, 794, 769, 7, 7, 7,
769, 804, 828, 832, 829, 777, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 772, 823, 832, 832, 824, 772, 7, 769,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 794, 828, 832, 827, 793,
7, 769, 7, 7, 7, 7, 7, 785, 830, 832, 828, 776, 7, 773,
828, 832, 832, 819, 770, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 791, 829, 831, 827, 831, 831, 831, 827, 832, 828, 787,
7, 7, 769, 7, 774, 820, 781, 797, 786, 777, 7, 7, 7, 769,
7, 777, 826, 832, 828, 792, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 773, 828, 832, 828, 802, 769, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 769, 7, 776, 820, 831, 831, 818, 774,
7, 770, 7, 7, 7, 7, 7, 786, 830, 832, 829, 776, 7, 776,
828, 832, 832, 812, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 770, 7, 7, 7,
7, 7, 771, 814, 831, 830, 831, 830, 830, 830, 830, 831, 829, 805,
769, 7, 7, 7, 771, 800, 789, 795, 774, 7, 7, 7, 7, 769,
7, 772, 820, 832, 831, 813, 771, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 792, 828, 832, 828, 782, 7, 769, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 796, 829, 831, 826, 791, 7,
769, 7, 7, 7, 7, 7, 7, 785, 830, 832, 829, 776, 7, 780,
828, 832, 832, 808, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 772, 782, 769, 7, 7,
7, 7, 771, 825, 832, 831, 831, 830, 830, 830, 831, 831, 832, 823,
771, 7, 7, 769, 7, 778, 795, 792, 769, 7, 769, 7, 7, 7,
7, 7, 792, 827, 832, 826, 777, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 770, 817, 832, 832, 824, 773, 7, 769, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 7, 786, 824, 831, 831, 812, 772, 7,
769, 7, 7, 7, 7, 7, 7, 782, 829, 832, 829, 776, 7, 783,
829, 832, 832, 808, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 773, 777, 796, 769, 7, 7,
7, 7, 770, 826, 832, 832, 831, 830, 830, 830, 832, 831, 832, 827,
770, 7, 7, 7, 7, 771, 794, 781, 7, 769, 7, 7, 7, 7,
769, 7, 773, 819, 832, 828, 792, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 774, 827, 832, 828, 798, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 775, 816, 832, 831, 824, 784, 7, 770,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 829, 776, 7, 780,
828, 832, 832, 811, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 770, 784, 774, 806, 771, 7, 7,
7, 7, 771, 825, 832, 830, 832, 830, 830, 830, 832, 830, 832, 824,
771, 7, 769, 7, 7, 771, 785, 771, 7, 7, 7, 7, 7, 7,
7, 7, 7, 798, 829, 832, 815, 771, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 796, 828, 832, 826, 776, 7, 769, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 788, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 7, 800, 830, 830, 830, 804, 769, 7, 769,
7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 829, 776, 7, 778,
828, 832, 832, 812, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 773, 800, 775, 815, 780, 7, 770,
7, 7, 770, 809, 831, 830, 831, 832, 831, 832, 831, 830, 830, 803,
769, 7, 7, 7, 7, 7, 771, 7, 7, 7, 7, 7, 7, 7,
7, 769, 7, 777, 825, 832, 826, 778, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 772, 821, 832, 830, 815, 771, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 770, 7,
7, 7, 7, 7, 7, 781, 824, 832, 831, 823, 777, 7, 770, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 829, 776, 7, 773,
827, 832, 832, 818, 770, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 769, 7, 777, 814, 775, 811, 802, 769, 769,
769, 7, 7, 782, 826, 832, 829, 832, 832, 832, 829, 832, 825, 780,
7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 771, 818, 832, 829, 794, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 782, 827, 832, 827, 791, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 770, 7,
7, 7, 7, 7, 770, 808, 832, 829, 830, 798, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 774, 7, 769,
827, 832, 832, 823, 770, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 783, 817, 770, 790, 824, 788, 7,
7, 770, 7, 7, 801, 827, 832, 832, 832, 832, 832, 828, 799, 769,
7, 7, 7, 7, 7, 7, 770, 769, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 797, 829, 832, 813, 771, 7, 7, 7, 7, 7,
7, 7, 7, 770, 811, 831, 832, 827, 773, 7, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 787, 830, 832, 828, 770, 7,
7, 7, 769, 7, 781, 826, 831, 832, 822, 775, 7, 770, 7, 7,
7, 7, 7, 7, 7, 7, 7, 786, 829, 832, 829, 774, 7, 769,
827, 832, 832, 828, 771, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 769, 783, 785, 805, 782, 773, 825, 822, 782,
770, 7, 7, 7, 771, 796, 823, 826, 826, 826, 823, 800, 771, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 769, 7, 779, 826, 832, 826, 777, 7, 7, 7, 7, 7,
7, 7, 7, 774, 827, 832, 830, 818, 771, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 791, 831, 832, 828, 770, 7,
7, 7, 7, 772, 810, 831, 830, 828, 796, 7, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 788, 830, 832, 828, 774, 7, 769,
825, 832, 832, 829, 774, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 771, 804, 787, 797, 813, 771, 790, 827, 826,
802, 776, 770, 7, 7, 7, 769, 771, 776, 775, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 772, 772, 7, 7, 7, 7, 7, 7,
7, 7, 769, 7, 772, 819, 832, 828, 790, 7, 7, 7, 7, 7,
7, 7, 7, 794, 830, 832, 829, 794, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 790, 830, 832, 828, 770, 7,
7, 7, 7, 789, 826, 831, 832, 808, 772, 7, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 786, 829, 832, 828, 775, 7, 7,
811, 830, 832, 829, 779, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 769, 7, 771, 815, 788, 782, 824, 783, 769, 800, 824,
832, 825, 808, 785, 773, 771, 769, 769, 771, 7, 7, 769, 770, 7,
7, 769, 770, 7, 774, 800, 826, 821, 787, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 795, 828, 832, 815, 772, 7, 7, 7, 7,
7, 7, 771, 819, 832, 832, 826, 776, 7, 769, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 788, 830, 832, 828, 769, 7,
7, 7, 776, 819, 832, 831, 821, 779, 7, 770, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 829, 777, 7, 7,
795, 829, 832, 830, 795, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 769, 7, 771, 814, 798, 773, 824, 808, 773, 771, 788,
811, 827, 832, 830, 828, 829, 830, 830, 828, 825, 826, 828, 827, 828,
828, 825, 823, 823, 825, 831, 832, 832, 818, 774, 7, 7, 7, 7,
7, 7, 7, 769, 7, 776, 825, 832, 826, 778, 7, 7, 7, 7,
7, 7, 777, 828, 832, 830, 811, 770, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 7, 7,
7, 7, 797, 829, 831, 827, 791, 7, 770, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 829, 777, 7, 7,
779, 828, 832, 832, 818, 771, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
769, 769, 7, 7, 7, 7, 805, 817, 773, 805, 825, 796, 771, 7,
774, 789, 814, 827, 831, 832, 832, 832, 832, 832, 832, 832, 832, 832,
832, 832, 832, 832, 832, 832, 828, 832, 831, 777, 7, 769, 7, 7,
7, 7, 7, 7, 7, 771, 814, 832, 829, 799, 7, 7, 7, 7,
7, 7, 797, 830, 832, 828, 787, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 827, 7, 7,
7, 784, 824, 832, 832, 815, 773, 7, 770, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 829, 777, 7, 7,
772, 825, 832, 832, 829, 779, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 788, 826, 774, 777, 822, 823, 795, 775,
7, 7, 773, 776, 787, 806, 818, 823, 827, 829, 828, 828, 828, 828,
828, 828, 829, 828, 826, 831, 832, 832, 824, 775, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 791, 827, 832, 821, 774, 7, 7, 7,
7, 771, 820, 832, 832, 825, 773, 7, 769, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 788, 830, 832, 825, 770, 7,
769, 808, 831, 832, 824, 784, 7, 770, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 829, 777, 7, 7,
770, 807, 830, 831, 831, 798, 769, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 771,
773, 772, 771, 7, 7, 7, 772, 824, 792, 7, 797, 826, 825, 809,
790, 773, 7, 7, 7, 7, 7, 7, 769, 769, 769, 769, 769, 769,
769, 769, 770, 769, 774, 805, 826, 821, 794, 7, 7, 7, 7, 7,
7, 7, 7, 7, 769, 7, 774, 824, 832, 828, 788, 7, 7, 7,
7, 777, 828, 832, 829, 807, 770, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 790, 830, 832, 826, 771, 7,
780, 826, 831, 830, 810, 770, 7, 769, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 774, 7, 7,
7, 783, 828, 831, 832, 822, 776, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 771, 811,
827, 828, 818, 774, 7, 7, 770, 821, 816, 773, 774, 809, 830, 831,
823, 803, 780, 772, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 769, 771, 772, 773, 7, 7, 7,
7, 7, 7, 7, 7, 7, 770, 812, 830, 831, 810, 773, 7, 7,
7, 798, 829, 832, 828, 783, 7, 769, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 794, 830, 831, 828, 769, 770,
805, 830, 831, 825, 783, 7, 770, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 774, 7, 7,
7, 773, 818, 832, 830, 829, 790, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 772, 824,
832, 832, 821, 771, 7, 770, 769, 800, 824, 791, 7, 784, 812, 825,
832, 832, 825, 814, 794, 779, 773, 771, 771, 770, 770, 770, 770, 770,
770, 770, 769, 770, 770, 769, 769, 790, 821, 830, 819, 785, 7, 7,
7, 7, 7, 7, 7, 7, 7, 790, 827, 832, 826, 782, 7, 7,
769, 820, 832, 832, 823, 773, 7, 769, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 791, 827, 832, 827, 7, 795,
828, 830, 831, 806, 770, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 774, 7, 7,
769, 7, 787, 824, 831, 831, 819, 779, 7, 769, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 789, 829,
831, 828, 803, 770, 7, 770, 7, 777, 825, 822, 783, 7, 778, 797,
817, 826, 832, 832, 831, 830, 829, 829, 829, 829, 829, 829, 829, 829,
829, 829, 829, 828, 828, 828, 828, 829, 832, 832, 832, 809, 772, 7,
769, 7, 7, 7, 7, 769, 7, 774, 825, 832, 829, 797, 7, 7,
774, 826, 832, 827, 792, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 792, 829, 832, 823, 783, 820,
832, 832, 822, 778, 7, 770, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 785, 830, 832, 828, 774, 7, 7,
769, 7, 769, 801, 830, 829, 830, 807, 775, 7, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 770, 7, 774, 816, 832,
831, 829, 782, 7, 7, 7, 769, 770, 805, 832, 814, 781, 7, 7,
776, 789, 812, 824, 828, 832, 832, 832, 832, 832, 832, 832, 832, 832,
832, 832, 832, 832, 832, 832, 832, 832, 832, 827, 832, 824, 775, 7,
7, 7, 7, 7, 7, 7, 7, 770, 811, 830, 832, 820, 774, 7,
797, 827, 832, 824, 773, 7, 770, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 793, 830, 832, 832, 824, 832,
830, 829, 796, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 786, 830, 832, 828, 774, 7, 7,
7, 770, 7, 776, 818, 832, 828, 828, 805, 773, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 770, 802, 831, 829,
832, 823, 774, 7, 769, 7, 769, 7, 777, 814, 832, 816, 786, 773,
7, 7, 771, 772, 778, 789, 797, 808, 812, 812, 812, 813, 816, 817,
820, 820, 817, 820, 821, 821, 822, 826, 832, 832, 832, 808, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 787, 827, 832, 828, 780, 770,
821, 832, 828, 804, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 795, 831, 831, 832, 832, 828,
832, 815, 774, 7, 770, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 789, 830, 832, 828, 774, 7, 7,
7, 7, 769, 7, 788, 823, 832, 829, 829, 809, 781, 769, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 772, 796, 828, 830, 830,
829, 796, 7, 769, 7, 7, 7, 769, 7, 785, 819, 832, 822, 803,
783, 773, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 769, 769, 769, 770, 787, 817, 827, 812, 780, 7, 7,
7, 7, 7, 7, 7, 7, 769, 7, 773, 824, 832, 829, 792, 777,
825, 832, 826, 778, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 792, 829, 832, 832, 828, 831,
826, 786, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 792, 831, 832, 828, 773, 7, 7,
7, 7, 769, 769, 7, 792, 827, 832, 828, 831, 826, 805, 777, 769,
7, 7, 7, 7, 7, 7, 7, 769, 781, 812, 830, 830, 827, 832,
813, 774, 7, 769, 7, 7, 7, 7, 770, 7, 782, 813, 832, 832,
823, 815, 792, 775, 770, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 785, 801, 799, 775,
7, 7, 7, 7, 7, 7, 7, 7, 769, 806, 829, 831, 817, 805,
827, 832, 824, 772, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 790, 829, 832, 832, 829, 832,
813, 771, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 790, 830, 832, 828, 771, 7, 7,
7, 7, 7, 769, 7, 771, 799, 829, 832, 829, 831, 831, 825, 814,
788, 774, 770, 770, 770, 771, 788, 814, 826, 831, 829, 829, 832, 823,
782, 7, 770, 7, 7, 7, 7, 7, 769, 770, 7, 781, 809, 826,
832, 832, 829, 825, 819, 805, 791, 783, 782, 782, 781, 778, 778, 778,
778, 778, 777, 775, 777, 776, 775, 773, 771, 786, 820, 832, 829, 808,
773, 7, 7, 7, 7, 7, 7, 769, 7, 786, 829, 832, 830, 831,
832, 829, 803, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 770, 797, 830, 832, 830, 832, 825,
791, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 770, 793, 830, 832, 828, 772, 7, 7,
7, 7, 7, 7, 769, 7, 772, 797, 824, 832, 832, 832, 832, 832,
828, 829, 829, 829, 829, 828, 829, 832, 832, 832, 832, 832, 823, 793,
7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 770, 7, 773, 795,
819, 828, 832, 832, 832, 832, 831, 830, 831, 831, 831, 830, 830, 830,
830, 830, 830, 829, 830, 830, 828, 829, 828, 830, 832, 832, 832, 827,
778, 7, 7, 7, 7, 7, 7, 769, 7, 776, 826, 832, 830, 830,
832, 830, 784, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 769, 7, 769, 798, 832, 832, 832, 830, 796,
770, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 769, 7, 769, 794, 831, 832, 829, 773, 7, 769,
7, 7, 7, 7, 7, 769, 7, 7, 778, 807, 827, 829, 831, 832,
832, 832, 832, 832, 832, 832, 832, 832, 832, 830, 825, 800, 776, 7,
769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 7,
775, 785, 808, 825, 828, 829, 831, 832, 832, 832, 832, 832, 832, 832,
832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 831, 832, 831,
779, 7, 769, 7, 7, 7, 7, 7, 769, 769, 799, 831, 832, 830,
832, 825, 775, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 769, 793, 825, 828, 828, 813, 775,
7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 788, 823, 828, 822, 777, 7, 769,
7, 7, 7, 7, 7, 7, 769, 769, 7, 771, 774, 784, 809, 827,
828, 827, 829, 829, 829, 828, 827, 828, 815, 788, 775, 769, 7, 769,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 769,
7, 7, 771, 773, 773, 779, 786, 793, 797, 797, 797, 797, 797, 797,
797, 797, 797, 798, 801, 802, 802, 805, 806, 816, 829, 832, 832, 821,
774, 7, 769, 7, 7, 7, 7, 7, 769, 7, 776, 816, 829, 828,
824, 801, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 769, 773, 772, 772, 772, 7,
769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 774, 772, 774, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 770, 7, 7, 7, 770, 772,
771, 772, 778, 781, 779, 775, 772, 772, 772, 7, 7, 7, 770, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
769, 769, 7, 7, 7, 7, 7, 7, 769, 769, 769, 769, 769, 769,
769, 769, 769, 7, 769, 769, 769, 770, 769, 773, 791, 815, 815, 785,
7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 773, 772, 773,
773, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 772, 773, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 769, 769, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 769, 770, 769, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769,
7, 7, 7, 7, 7, 7, 7, 769, 769, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 7, 7, 769,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 769, 769, 769,
769, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 770, 769, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
};
int xldim = 151;
int yldim = sizeof(ncsa_logo)/(sizeof(short)*151);
/* Quit if the window is NULL */
if (window == NULL)
return TRUE;
/* Set our attention on the window. */
winset((long) window->win_id);
/* Install logo palette */
for (i = 0; i < LOGO_SIZE; i++) {
mapcolor(LOGO_BASE+i,
palette[i*3], palette[i*3+1], palette[i*3+2]);
}
/* Clear the window */
color(WHITE);
clear();
/* Get the size of the window and put the logo in it */
getsize(&xwdim, &ywdim);
height = getheight();
xbdim = 1.1 * strwidth(NCSA_STR);
ybdim = yldim + 5.0 * height;
rectwrite((xwdim-xldim)/2, (ywdim+ybdim)/2-yldim+1,
(xwdim+xldim)/2-1, (ywdim+ybdim)/2,
ncsa_logo);
/* Draw border around the title */
color(RED);
for (i = 0; i < 3; i++) {
recti(i,i, xwdim-i-1, ywdim-i-1);
}
/* Put in the text that follows */
color(BLACK);
ywdim = (ywdim+ybdim)/2 - yldim - height;
gprintf((xwdim-strwidth(NCSA_STR))/2, ywdim, NCSA_STR, 0.0);
ywdim -= height;
gprintf((xwdim-strwidth(UIUC_STR))/2, ywdim, UIUC_STR, 0.0);
ywdim -= height*2;
gprintf((xwdim-strwidth(PV_STR))/2, ywdim, PV_STR, 0.0);
swapbuffers();
/* At this point we're always successful */
return FALSE;
}
int
image_draw(window)
windat_t * window;
/* DESCRIPTION: Redraws the window using image data associated with
it. Returns FALSE if successful, TRUE if an error occurs.
*/
{
image_t * image;
long count;
float * x;
float * y;
float * z;
int * connect_p;
register int vertex;
float * color_p;
int i;
float min[DIMS];
float min_color;
float max[DIMS];
float max_color;
float range[DIMS];
char title[256];
/* Set our attention on the window. */
winset((long) window->win_id);
reshapeviewport();
/* Initialize variables */
image = (image_t *) window->data;
x = (float *) image->p[X].ds->value;
y = (float *) image->p[Y].ds->value;
z = (float *) image->p[Z].ds->value;
connect_p = (int *) image->connect.ds->value;
color_p = (float *) image->color.ds->value;
min_color = (float) image->color.ds->min;
max_color = (float) image->color.ds->max;
for (i = 0; i < DIMS; i++) {
max[i] = image->p[i].ds->max;
min[i] = image->p[i].ds->min;
/* Calculate the amount to adjust the box by (+/- 5%)*/
range[i] = (max[i] - min[i]) * 0.05;
}
/* Set up the Z-buffer for this pass */
zbuffer(TRUE);
lsetdepth(0x0, 0x7FFFFF);
lshaderange(BACKGROUND+1, FOREGROUND-1, 0x0, 0x7FFFFF);
zfunction(ZF_LEQUAL);
czclear(BACKGROUND, 0x7FFFFF);
/* Render the image */
pushmatrix();
/* Use either a perspective or orthographic projection */
if (current.ortho) {
ortho(-max_width*1.1,max_width*1.1,
-max_width*1.1,max_width*1.1,
0.1,1000);
scale(scaling, scaling, 1.0);
}
else {
perspective(view_angle, 1.0, 0.1, 1000);
}
lookat(from[X], from[Y], from[Z],
at[X], at[Y], at[Z], twist);
/* Set up appropriate shading model */
if (current.constant)
shademodel(FLAT);
else
shademodel(GOURAUD);
/* Turn on depth-cueing if requested */
depthcue(current.depth);
color(FOREGROUND);
/* Draw coordinate system */
if (current.axes || current.box) {
/* Adjust the min/max values */
for (i = 0; i < DIMS; i++) {
min[i] -= range[i];
max[i] += range[i];
}
/* Draw the bounding cube */
if (current.box) {
bgnline();
v3f(p3f(min[X],min[Y],min[Z]));
v3f(p3f(max[X],min[Y],min[Z]));
v3f(p3f(max[X],min[Y],max[Z]));
v3f(p3f(min[X],min[Y],max[Z]));
v3f(p3f(min[X],min[Y],min[Z]));
v3f(p3f(min[X],max[Y],min[Z]));
v3f(p3f(max[X],max[Y],min[Z]));
v3f(p3f(max[X],max[Y],max[Z]));
v3f(p3f(min[X],max[Y],max[Z]));
v3f(p3f(min[X],max[Y],min[Z]));
endline();
bgnline();
v3f(p3f(max[X],min[Y],min[Z]));
v3f(p3f(max[X],max[Y],min[Z]));
endline();
bgnline();
v3f(p3f(max[X],min[Y],max[Z]));
v3f(p3f(max[X],max[Y],max[Z]));
endline();
bgnline();
v3f(p3f(min[X],min[Y],max[Z]));
v3f(p3f(min[X],max[Y],max[Z]));
endline();
}
else {
bgnline();
v3f(p3f(max[X],min[Y],min[Z]));
v3f(p3f(min[X],min[Y],min[Z]));
v3f(p3f(min[X],min[Y],max[Z]));
v3f(p3f(min[X],min[Y],min[Z]));
v3f(p3f(min[X],max[Y],min[Z]));
endline();
}
}
/* Draw the labels only if told to */
if ((current.axes || current.box) && (current.labels)) {
cmov(max[X],min[Y],min[Z]);
charstr(image->p[X].ds->name);
cmov(min[X],max[Y],min[Z]);
charstr(image->p[Y].ds->name);
cmov(min[X],min[Y],max[Z]);
charstr(image->p[Z].ds->name);
}
/* Draw the optional "at point" star */
if (current.at_point) {
bgnline();
v3f(p3f(at[X]-0.1,at[Y],at[Z]));
v3f(p3f(at[X]+0.1,at[Y],at[Z]));
endline();
bgnline();
v3f(p3f(at[X],at[Y]-0.1,at[Z]));
v3f(p3f(at[X],at[Y]+0.1,at[Z]));
endline();
bgnline();
v3f(p3f(at[X],at[Y],at[Z]-0.1));
v3f(p3f(at[X],at[Y],at[Z]+0.1));
endline();
cmov(at[X], at[Y], at[Z]);
charstr("AT");
}
/* Draw the points */
if (current.points) {
color(FOREGROUND);
bgnpoint();
for (count = image->p[X].ds->size; count>0; count--) {
if (color_p != NULL)
color(MAP_COLOR(min_color,
VALINC(color_p),
max_color));
v3f(p3f(VALINC(x),VALINC(y),VALINC(z)));
if (!(count & 255)) {
endpoint();
bgnpoint();
}
}
endpoint();
}
/* Draw the solid polygons unless we are told otherwise */
else if (current.polygons) {
for (count = image->connect.ds->size; count > 0;
count -= nvert) {
if (current.constant) {
if (nvert == 3) {
color(MAP_COLOR(min_color,
(VALOFF(color_p,(*(connect_p)-1)) +
VALOFF(color_p,(*(connect_p+1)-1)) +
VALOFF(color_p,(*(connect_p+2)-1)))
/ 3.0,
max_color));
}
else {
color(MAP_COLOR(min_color,
(VALOFF(color_p,(*(connect_p)-1)) +
VALOFF(color_p,(*(connect_p+1)-1)) +
VALOFF(color_p,(*(connect_p+2)-1)) +
VALOFF(color_p,(*(connect_p+3)-1)))
/ 4.0,
max_color));
}
}
else if (color_p == NULL)
color(FOREGROUND);
bgnpolygon();
for (i = nvert; i > 0; i--) {
vertex = *(connect_p++)-1;
if (vertex == -1) break;
if ((color_p != NULL) && !current.constant) {
color(MAP_COLOR(min_color,
VALOFF(color_p,vertex),
max_color));
}
v3f(p3f(VALOFF(x,vertex),VALOFF(y,vertex),
VALOFF(z,vertex)));
}
endpolygon();
}
}
/* Draw overlay lines if they were requested and if we just drew */
/* polygons, or regular lines if we're just rendering the data as */
/* lines. */
if (current.lines ||
(current.outlines && current.polygons)) {
x = (float *) image->p[X].ds->value;
y = (float *) image->p[Y].ds->value;
z = (float *) image->p[Z].ds->value;
connect_p = (int *) image->connect.ds->value;
if (current.lines)
color_p = (float *) image->color.ds->value;
else { /* We're drawing outline of polygons */
color_p = NULL;
/* Shift these lines slightly forward so that */
/* they show up in from of the actual */
/* polygons that have already been drawn. */
popmatrix();
pushmatrix();
/* Use perspective or orthographic projection */
if (current.ortho) {
ortho(-max_width*1.1,max_width*1.1,
-max_width*1.1,max_width*1.1,
0.1,1000);
scale(scaling, scaling, 1.0);
}
else {
perspective(view_angle, 1.0, 0.1, 1000);
}
translate(0.0, 0.0, 0.01);
lookat(from[X], from[Y], from[Z],
at[X], at[Y], at[Z], twist);
}
/* Set to FOREGROUND and draw the lines */
color(FOREGROUND);
for (count = image->connect.ds->size; count > 0;
count -= nvert) {
bgnclosedline();
for (i = nvert; i > 0; i--) {
vertex = *(connect_p++)-1;
if (vertex == -1) break;
if ((color_p != NULL) && !current.constant)
color(MAP_COLOR(min_color,
VALOFF(color_p,vertex),
max_color));
v3f(p3f(VALOFF(x,vertex),VALOFF(y,vertex),
VALOFF(z,vertex)));
}
endclosedline();
}
}
popmatrix();
/* Update the window's status and modify the title, if necessary */
window->redrawn = TRUE;
if (window->animated) {
sprintf(title, "%s:%s", ((image_t *) window->data)->fn,
((image_t *) window->data)->group);
wintitle(title);
window->animated = FALSE;
}
/* Show the work we've done and return*/
swapbuffers();
return FALSE;
}
int
palette_draw(window)
windat_t * window;
/* DESCRIPTION: Redraws the window using image data to draw a palette.
Returns FALSE if successful, TRUE if an error occurs.
*/
{
double minval, maxval;
/* Quit if the window is NULL */
if (window == NULL)
return TRUE;
/* Set our attention on the window. */
winset((long) window->win_id);
/* Clear the window (switch buffers) */
color(BACKGROUND);
clear();
/* If there is no image structure, we cannot get scale info */
if (window->data == NULL) {
return TRUE;
}
else {
/* If there is no color table, the min and max */
/* values: set them to zero (we should not even */
/* be here). Otherwise, get the min and max values */
/* from the dataset. */
if (((image_t *)window->data)->color.name[0] == '\0') {
minval = 0.0;
maxval = 0.0;
}
else {
minval = ((image_t *)
window->data)->color.ds->min;
maxval = ((image_t *)
window->data)->color.ds->max;
bgnpolygon();
color(MAP_COLOR(minval,minval,maxval));
v2i(p2i(81,11));
v2i(p2i(PALETTE_X-11,11));
color(MAP_COLOR(minval,maxval,maxval));
v2i(p2i(PALETTE_X-11,PALETTE_Y-11));
v2i(p2i(81,PALETTE_Y-11));
endpolygon();
}
color(FOREGROUND);
gprintf(0, 10, "%-8.2e", minval);
gprintf(0, PALETTE_Y-10, "%-8.2e", maxval);
}
/* Draw a border around the colormap and display scale */
color(FOREGROUND);
recti(80, 10, PALETTE_X-10, PALETTE_Y-10);
swapbuffers();
/* At this point we're always successful */
return FALSE;
}